Skip to content

fix(api): npm installs no longer hang on better-auth's open peers (0.1.1) - #8

Merged
Madraka merged 1 commit into
mainfrom
fix/npm-better-auth-peers
Oct 20, 2026
Merged

Madraka merged 1 commit into
mainfrom
fix/npm-better-auth-peers

Conversation

@Madraka

@Madraka Madraka commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

Summary

On 0.1.0, npm create cloudhal and npm install @cloudhal/cli spun at 100% CPU forever.

Cause: @better-auth/api-key@1.7.7 names @better-auth/core, @better-auth/utils and better-call as open peers. Without the monorepo lockfile, npm picks @better-auth/core@1.7.11, whose peers conflict with better-auth 1.7.7's. Installing api-key alone fails with ERESOLVE; in the full tree npm backtracks forever.

Fix: @cloudhal/api depends on exactly the versions better-auth itself uses (@better-auth/core@1.7.7, @better-auth/utils@0.4.2, better-call@1.4.0), added as catalog entries. test/better-auth-pins.test.ts keeps them equal to better-auth's own dependencies.

Release: a changeset bumps the fixed group to 0.1.1.

Test plan

  • Plain npm install of the CLI from tarballs built on this branch finishes in 11 s with no ERESOLVE and resolves @better-auth/core@1.7.7. Before: no result within 10 minutes.
  • api (319) and cli (154) suites, biome, size ratchet.

🤖 Generated with Claude Code

@better-auth/api-key names @better-auth/core, @better-auth/utils and
better-call as open peers. Outside the monorepo lockfile npm picked
newer releases whose own peers conflict with better-auth 1.7.7's and
backtracked forever, so `npm create cloudhal` and `npm install
@cloudhal/cli` never finished on 0.1.0. @cloudhal/api now depends on
exactly the versions better-auth uses (catalog entries), with a test
that keeps them equal. Releases 0.1.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Madraka <asker_17@msn.com>
Copilot AI balanced review requested due to automatic review settings October 20, 2026 11:27
@Madraka
Madraka merged commit 05f4512 into main Oct 20, 2026
5 of 6 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

Madraka added a commit that referenced this pull request Oct 20, 2026
fix(api): npm installs no longer hang on better-auth's open peers (0.1.1)
@Madraka
Madraka deleted the fix/npm-better-auth-peers branch October 20, 2026 21:35
Madraka added a commit that referenced this pull request Nov 11, 2026
…ard (PR #205 review)

- A (#5, #3, #6, #7): the definitions and collections anchors read the
  fragment's stored text when planned (checked against the planned Site,
  else ConflictError) and compare that text at batch time, so a site row
  stored verbatim anchors like any other. The canonical-rows job and its
  local-open run are removed: nothing depends on canonical site rows.
- B (#2, #4): in a site with reference fields every entry write carries the
  definitions anchor (status-only publishes included); the shared subquery
  only matches reference and repeater definitions, so a retyped key fails
  the batch.
- C (#0): usable members are one json_each count over the needed collection
  lists (six parameters, per-pair semantics kept).
- D (#8, #15): the list-values fingerprint format moves to 2, so rows built
  under the old readsOriginal rebuild once.
- E (#16): a referrer write naming an entry outside the field's collections
  is unknown_entry (422); reference_target_moved stays the move's 409.
- F (#12): a reference sub-field added over a key stored items hold is
  field_key_in_use, counted and guarded on the site CAS.
- G (#1): racing cases for the R3 narrowing in both orders, R13 for a move
  and a group change, the #2 interleaving, a verbatim site row, 22 blocking
  pairs, and SQL tests of the shared subquery.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Madraka <8898640+Madraka@users.noreply.github.com>
Madraka added a commit that referenced this pull request Nov 11, 2026
…es, shownBy, picker folding)

- #0: the MCP precheck builds its asset skip set from full issue paths, as
  the store does, so an item-level issue no longer hides another item's
  non-image (precheck test).
- #1: fieldAssetRefs keeps every use's path (`paths`); fieldAssetIssues
  reports each use not under a skip path, the asset_refs rows still one per
  asset and field.
- #2, #3: editionReferences applies the edition field's write rules (where,
  a single target, maxItems, the 100-reference cap, repeater maxItems),
  reads values through a running rename's fromKey (storedKey) and writes
  them back under that key; every drop carries its reason.
- #7: shownBy leaves out only the row's own holder, so it no longer depends
  on pagination (suite case paging at 20 and 1).
- #8: the picker folds q and the candidates' titles and slugs with foldName
  in JS (case, diacritics, Turkish İ/ı) over at most 5,000 candidates read
  as small columns; tests with ASCII and non-ASCII uppercase.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Madraka <8898640+Madraka@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants